package net.betou.common.util;

import java.text.NumberFormat;

/**
 * @author 叶装装
 * 
 */
public final class DataConvertUtils{

	private DataConvertUtils( ) {
	}

	public static Boolean getBoolToEmpty( String value ) {
		boolean bool = false;
		if( DataCheckUtils.isEmpty( value, true ) ){
			return null;
		}

		if( "0".equals( value ) ){
			bool = false;
		}else{
			bool = true;
		}

		return bool;
	}

	public static Boolean getBool( String value ) {
		boolean bool = false;

		if( DataCheckUtils.isEmpty( value, true ) ){
			return false;
		}

		if( "0".equals( value ) ){
			bool = false;
		}else{
			bool = true;
		}

		return bool;

	}

	public static short getShort( Object value ) {

		int v = getInt( value, 0 );
		if( v > Short.MAX_VALUE ){
			v = 0;
		}
		return ( short ) v;

	}

	public static int getInt( Object value ) {
		return getInt( value, 0 );
	}

	public static int getInt( Object value, int defaultNum ) {

		if( DataCheckUtils.isEmpty( value, true ) ){
			return defaultNum;
		}

		if( !DataCheckUtils.isNum( value ) ){
			return defaultNum;
		}

		return Integer.parseInt( value.toString( ) );
	}

	public static Object convertToHibernate3( String value, String type ) {
		if( "bool".equals( type ) ){
			return Boolean.valueOf( value );
		}
		if( "integer".equals( type ) ){
			return Integer.valueOf( value );
		}

		if( "byte".equals( type ) ){
			return Byte.valueOf( value );
		}

		return value;
	}

	/**
	 * 转换成 123,11.00这种格式，会进行四舍五入操作
	 * 
	 * @param point
	 *            保留的小数点
	 * @param num
	 *            要转换的数
	 * @return
	 */
	public static String formatDouble( int point, double num ) {
		NumberFormat nf = NumberFormat.getNumberInstance( );
		nf.setMaximumFractionDigits( point );
		return nf.format( num );
	}
}
